package com.domain;

import com.controller.ShootGame;

import java.awt.image.BufferedImage;
import java.util.Random;

/**
 * 敌机类
 */
public class Airplane extends Flying {

    /**
     * 单独自己的属性（用来描述类中对象的形容词）
     * **/
    private Random random = new Random();//创建一个生成随机数的对象
    private int direction = random.nextInt(2);//移动方向

    //方法（类中对象所具有的能力）
    public Airplane() {//无惨构造
        setImage(ShootGame.airplane0);//给图片属性赋值
        setWidth(getImage().getWidth());//给图片属性赋值
        setHeight(getImage().getHeight());//给图片的高赋值
        setySpeed(3);//声明敌机往下运动的速度
        setxSpeed(1);//声明敌机往右运动的速度
        setLifr(2);//声明敌机的生命值
        setX(random.nextInt(ShootGame.WIDTH-getWidth()));//给图片的x轴坐标赋值
        setY(-getHeight());//给图片的y轴赋值
        setImages(new BufferedImage[]{ShootGame.airplane0,ShootGame.airplane1});//使飞机移动喷气的图片
    }

    @Override
    public void move() {
        //使飞机移动喷气
        setIndex(getIndex()+1);
        setImage(getImages()[getIndex()%2]);
        //移动速度
        setY(getY()+getySpeed());
        //判断移动方向1向左其他向右
        if (direction == 1){
            setX(getX()-getxSpeed());//向左移动
        }else {
            setX(getX()+getxSpeed());//向右移动
        }
        //判断敌机是否超出右边框是则向左移动
        if (getX() >= ShootGame.WIDTH-getWidth()){
            setxSpeed(-getxSpeed());//敌机左移动
        }
        //判断敌机是否超出左边框是则向右移动
        if (getX() <= 0){
            setxSpeed(-getxSpeed());//敌机右移动
        }

    }

}
